/*
 * TimersPool.java
 *
 * Created on 26 de marzo de 2006, 05:48 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package inc.jmc.cyberboard;

import inc.jmc.cyberboard.ui.CyberManager;

import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;

import org.apache.log4j.Logger;

/**
 *
 * @author Juan Miguel Olguin Salguero
 */
public class InternalClock extends TimerTask implements java.io.Serializable{
    /**
	 * 
	 */
	private static final long serialVersionUID = 8683616953250487180L;
	static Logger logger = Logger.getLogger(InternalClock.class.getName());
    /*
     *Aqui se almacenan todos los timers que sirven para la ventana de medicion de tiempo 
     *para las pcs
     **/
    public  ArrayList<TimerDisplay> timers=new ArrayList<TimerDisplay>();
    public CyberManager cyberM;
    int segundosParaGuardarSesion=0;
    private InternalClock()
    {
    }
    public void run()
    {
        int size1=timers.size();
        for(int i=0;i<size1;i++)
        {
            try{
            TimerDisplay tim=timers.get(i);
            //logger.info("encontramos este reloj y le sumamos uno");
            //tim.addSecs(1);
            tim.calculaDifferencia();
            tim.printToTextField();
            //logger.info(""+tim.objTimer.getHour()+":"+tim.objTimer.getMinute()+":"+tim.objTimer.getSecond());
            }
            catch(Exception ex)
            {
                logger.info("ERROR CRITICO POSIBLEMENTE DEL ARREGLO");
                ex.printStackTrace();
            
            }
        }
        /////CON ESTO HACEMOS QUE EL SERVER GUARDE LA SESSION EL SOLO, AUTOMATICAMENTE. CADA 60 SEGUNDOS
        
        if((++segundosParaGuardarSesion % 60)==0)
        {
        	if(cyberM!=null)
        	{
        		cyberM.guardarSesionMenuItemActionPerformed();
        		logger.info("Estamos guardando la session de ccnet ");
        	}
        }
    }
    public void addTimerObserver(TimerDisplay litTime)
    {
        timers.add(litTime);
    }
    public void deleteTimerObserver(TimerDisplay litTime)
    {
        timers.remove(litTime);
    }
    /** Creates a new instance of TimersPool */
    public InternalClock(int seccs)
    {
        seccs*=1000;
        Timer timer = new Timer();
        timer.schedule(this, 0L, seccs);
    }
    public static void main(String args[])throws java.io.IOException
    {
        //InternalClock pct=new InternalClock(1);
    }
    
    
}

